package com.lds.erp.order.order.vo;

import com.dph.common.utils.base.Money;
import com.dph.common.utils.service.Base;
import com.lds.erp.common.AppEnum;
import com.lds.erp.common.YNEnum;
import com.lds.erp.order.enums.*;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;


/**
 * 创建订单返回参数
 */
public class OrderMchOrderDetailVO extends Base {


    private static final long serialVersionUID = 145031766560478232L;

    @ApiModelProperty(value = "订单商品信息")
    private List<OrdOrderProductInfoVO> ssuVOList;
    /**
     *订单号
     */
    @ApiModelProperty(value = "订单号")

    private String ordOrderNo;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称")

    private String ordOrderMchName;


    /**
     * 收货地址
     */
    @ApiModelProperty(value = "订单号")

    private String ordDeliveryAddress;


    /**
     * 收货人姓名
     */
    @ApiModelProperty(value = "收货人姓名")

    private String ordDeliveryPhone;


    /**
     * 收货人电话
     */
    @ApiModelProperty(value = "收货人电话")

    private String ordDeliveryName;


    /**
     * 配送时段
     */


    /**
     *订单金额，单位分
     */
    @ApiModelProperty(value = "订单金额")

    private Money ordOrderTotalPrice;

    /**
     * 付款方式
     */
    @ApiModelProperty(value = "付款方式")

    private PaymentMethodEnum ordPaymentMethod;

    /**
     *支付类型（OFFLINE：线下货到付款，ONLINE：线上在线支付）
     */
    @ApiModelProperty(value = "支付类型（OFFLINE：线下货到付款，ONLINE：线上在线支付）")

    private PaymentTypeEnum ordPaymentType;

    /**
     * 付款状态
     */
    @ApiModelProperty(value = "付款状态")

    private YNEnum ordPaymentStatus;

    /**
     *优惠金额，单位分
     */
    @ApiModelProperty(value = "优惠金额")

    private Money ordTotalDiscountAmount;

    /**
     *运费金额，单位分
     */
    @ApiModelProperty(value = "运费金额")

    private Money ordShippingPrice;

    /**
     *实收金额，单位分
     */
    @ApiModelProperty(value = "实收金额")

    private Money ordCommodityPrice;

    /**
     *创建时间
     */
    @ApiModelProperty(value = "创建时间")

    private Date createTime;

    @ApiModelProperty(value = "确认收货时间")
    private Date ordConfirmReceive;

    /**
     *APPROVING待审核ENDINGRECEIVED待收货FINISHED已完成VOID已作废UCANCEL商户取消
     */
    @ApiModelProperty(value = "PENDINGREVIEW待审核WAITRECEIVED待收货FINISHED已完成VOID已作废UCANCEL商户取消")

    private OrderStatusEnum ordOrderStatus;

    /**
     *订单类型NORMAL普通订单CREDIT赊账订单 （枚举类型）
     */
    @ApiModelProperty(value = "订单类型NORMAL普通订单CREDIT赊账订单 （枚举类型）")

    private OrderTypeEnum ordOrderType;



    /**
     *异常状态NORMAL正常RTPART部分退单RTALL整单退（枚举类型）
     */
    @ApiModelProperty(value = "异常状态NORMAL正常RTPART部分退单RTALL整单退（枚举类型）")

    private AbnormalStatusEnum ordAbnormalStatus;

    /**
     *异常状态备注
     */
    @ApiModelProperty(value = "异常状态备注")

    private String ordAbnormalNote;

    /**
     *订单来源:SYSTEM后台，MCHMP微信小程序（枚举类型）
     */
    @ApiModelProperty(value = "订单来源:SYSTEM后台，MCHMP微信小程序（枚举类型）")

    private AppEnum ordOrderSource;

    /**
     *订单备注
     */
    @ApiModelProperty(value = "订单备注")

    private String ordOrderNote;

    /**
     *打印时间
     */
    @ApiModelProperty(value = "打印时间")

    private Date ordPrintTime;

    /**
     *付款时间
     */
    @ApiModelProperty(value = "付款时间")

    private Date ordPaymentedTime;

    /**
     *确认送达时间
     */
    @ApiModelProperty(value = "确认送达时间")

    private Date ordConfirmTime;

    /**
     * 订单状态名称
     */
    @ApiModelProperty(value = "订单状态名称")

    private  String ordOrderStatusName;
    /**
     * 订单支付方式
     */
    @ApiModelProperty(value = "订单支付方式")

    private  String OrdPaymentMethodName;

    /**
     * 支付金额
     */
    @ApiModelProperty(value = "支付金额")

    private  Money paymentAmount;
    @ApiModelProperty(value = "配送时段")
    private String sendTime;

    @ApiModelProperty(value = "配送员名称")

    private String ordDeliveryUserName;
    @ApiModelProperty(value = "配送员id")

    private String ordDeliveryUserId;
    @ApiModelProperty(value = "配送员电话")

    private String ordDeliveryUserPhone;

    @ApiModelProperty(value = "预计送达时间 开始时间")

    private Date ordEstimateStartTime;
    @ApiModelProperty(value = "预计送达时间 截止时间")

    private Date ordEstimateEndTime;
    @ApiModelProperty(value = "退单号")

    private String ordRefundTradeNo;

    private String ordEntrustUserId;
    private  Integer agent;
    @ApiModelProperty(value = "红包")
    private Money immediatelyreductionDiscountAmount;
    @ApiModelProperty(value = "优惠券")
    private Money fullReductionDiscountAmount;
    @ApiModelProperty(value = "积分抵扣金额")
    private Money pointsDiscountAmount;

    public Money getImmediatelyreductionDiscountAmount() {
        return immediatelyreductionDiscountAmount;
    }

    public void setImmediatelyreductionDiscountAmount(Money immediatelyreductionDiscountAmount) {
        this.immediatelyreductionDiscountAmount = immediatelyreductionDiscountAmount;
    }

    public Money getFullReductionDiscountAmount() {
        return fullReductionDiscountAmount;
    }

    public void setFullReductionDiscountAmount(Money fullReductionDiscountAmount) {
        this.fullReductionDiscountAmount = fullReductionDiscountAmount;
    }

    public Money getPointsDiscountAmount() {
        return pointsDiscountAmount;
    }

    public void setPointsDiscountAmount(Money pointsDiscountAmount) {
        this.pointsDiscountAmount = pointsDiscountAmount;
    }

    public String getOrdOrderNo() {
        return ordOrderNo;
    }

    public void setOrdOrderNo(String ordOrderNo) {
        this.ordOrderNo = ordOrderNo;
    }

    public String getOrdOrderMchName() {
        return ordOrderMchName;
    }

    public void setOrdOrderMchName(String ordOrderMchName) {
        this.ordOrderMchName = ordOrderMchName;
    }

    public String getOrdDeliveryAddress() {
        return ordDeliveryAddress;
    }

    public void setOrdDeliveryAddress(String ordDeliveryAddress) {
        this.ordDeliveryAddress = ordDeliveryAddress;
    }

    public String getOrdDeliveryPhone() {
        return ordDeliveryPhone;
    }

    public void setOrdDeliveryPhone(String ordDeliveryPhone) {
        this.ordDeliveryPhone = ordDeliveryPhone;
    }

    public String getOrdDeliveryName() {
        return ordDeliveryName;
    }

    public void setOrdDeliveryName(String ordDeliveryName) {
        this.ordDeliveryName = ordDeliveryName;
    }

    public Money getOrdOrderTotalPrice() {
        return ordOrderTotalPrice;
    }

    public void setOrdOrderTotalPrice(Money ordOrderTotalPrice) {
        this.ordOrderTotalPrice = ordOrderTotalPrice;
    }

    public PaymentMethodEnum getOrdPaymentMethod() {
        return ordPaymentMethod;
    }

    public void setOrdPaymentMethod(PaymentMethodEnum ordPaymentMethod) {
        this.ordPaymentMethod = ordPaymentMethod;
    }

    public PaymentTypeEnum getOrdPaymentType() {
        return ordPaymentType;
    }

    public void setOrdPaymentType(PaymentTypeEnum ordPaymentType) {
        this.ordPaymentType = ordPaymentType;
    }

    public YNEnum getOrdPaymentStatus() {
        return ordPaymentStatus;
    }

    public void setOrdPaymentStatus(YNEnum ordPaymentStatus) {
        this.ordPaymentStatus = ordPaymentStatus;
    }

    public Money getOrdTotalDiscountAmount() {
        return ordTotalDiscountAmount;
    }

    public void setOrdTotalDiscountAmount(Money ordTotalDiscountAmount) {
        this.ordTotalDiscountAmount = ordTotalDiscountAmount;
    }

    public Money getOrdShippingPrice() {
        return ordShippingPrice;
    }

    public void setOrdShippingPrice(Money ordShippingPrice) {
        this.ordShippingPrice = ordShippingPrice;
    }

    public Money getOrdCommodityPrice() {
        return ordCommodityPrice;
    }

    public void setOrdCommodityPrice(Money ordCommodityPrice) {
        this.ordCommodityPrice = ordCommodityPrice;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public OrderStatusEnum getOrdOrderStatus() {
        return ordOrderStatus;
    }

    public void setOrdOrderStatus(OrderStatusEnum ordOrderStatus) {
        this.ordOrderStatus = ordOrderStatus;
    }

    public OrderTypeEnum getOrdOrderType() {
        return ordOrderType;
    }

    public void setOrdOrderType(OrderTypeEnum ordOrderType) {
        this.ordOrderType = ordOrderType;
    }

    public AbnormalStatusEnum getOrdAbnormalStatus() {
        return ordAbnormalStatus;
    }

    public void setOrdAbnormalStatus(AbnormalStatusEnum ordAbnormalStatus) {
        this.ordAbnormalStatus = ordAbnormalStatus;
    }

    public String getOrdAbnormalNote() {
        return ordAbnormalNote;
    }

    public void setOrdAbnormalNote(String ordAbnormalNote) {
        this.ordAbnormalNote = ordAbnormalNote;
    }

    public AppEnum getOrdOrderSource() {
        return ordOrderSource;
    }

    public void setOrdOrderSource(AppEnum ordOrderSource) {
        this.ordOrderSource = ordOrderSource;
    }

    public String getOrdOrderNote() {
        return ordOrderNote;
    }

    public void setOrdOrderNote(String ordOrderNote) {
        this.ordOrderNote = ordOrderNote;
    }

    public Date getOrdPrintTime() {
        return ordPrintTime;
    }

    public void setOrdPrintTime(Date ordPrintTime) {
        this.ordPrintTime = ordPrintTime;
    }

    public Date getOrdPaymentedTime() {
        return ordPaymentedTime;
    }

    public void setOrdPaymentedTime(Date ordPaymentedTime) {
        this.ordPaymentedTime = ordPaymentedTime;
    }

    public Date getOrdConfirmTime() {
        return ordConfirmTime;
    }

    public void setOrdConfirmTime(Date ordConfirmTime) {
        this.ordConfirmTime = ordConfirmTime;
    }

    public String getOrdOrderStatusName() {
        return ordOrderStatusName;
    }

    public void setOrdOrderStatusName(String ordOrderStatusName) {
        this.ordOrderStatusName = ordOrderStatusName;
    }

    public String getOrdPaymentMethodName() {
        return OrdPaymentMethodName;
    }

    public void setOrdPaymentMethodName(String ordPaymentMethodName) {
        OrdPaymentMethodName = ordPaymentMethodName;
    }

    public Money getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(Money paymentAmount) {
        this.paymentAmount = paymentAmount;
    }

    public List<OrdOrderProductInfoVO> getSsuVOList() {
        return ssuVOList;
    }

    public void setSsuVOList(List<OrdOrderProductInfoVO> ssuVOList) {
        this.ssuVOList = ssuVOList;
    }

    public Date getOrdConfirmReceive() {
        return ordConfirmReceive;
    }

    public void setOrdConfirmReceive(Date ordConfirmReceive) {
        this.ordConfirmReceive = ordConfirmReceive;
    }

    public String getSendTime() {
        return sendTime;
    }

    public void setSendTime(String sendTime) {
        this.sendTime = sendTime;
    }

    public String getOrdDeliveryUserName() {
        return ordDeliveryUserName;
    }

    public void setOrdDeliveryUserName(String ordDeliveryUserName) {
        this.ordDeliveryUserName = ordDeliveryUserName;
    }

    public String getOrdDeliveryUserId() {
        return ordDeliveryUserId;
    }

    public void setOrdDeliveryUserId(String ordDeliveryUserId) {
        this.ordDeliveryUserId = ordDeliveryUserId;
    }

    public String getOrdDeliveryUserPhone() {
        return ordDeliveryUserPhone;
    }

    public void setOrdDeliveryUserPhone(String ordDeliveryUserPhone) {
        this.ordDeliveryUserPhone = ordDeliveryUserPhone;
    }

    public Date getOrdEstimateStartTime() {
        return ordEstimateStartTime;
    }

    public void setOrdEstimateStartTime(Date ordEstimateStartTime) {
        this.ordEstimateStartTime = ordEstimateStartTime;
    }

    public Date getOrdEstimateEndTime() {
        return ordEstimateEndTime;
    }

    public void setOrdEstimateEndTime(Date ordEstimateEndTime) {
        this.ordEstimateEndTime = ordEstimateEndTime;
    }

    public String getOrdRefundTradeNo() {
        return ordRefundTradeNo;
    }

    public void setOrdRefundTradeNo(String ordRefundTradeNo) {
        this.ordRefundTradeNo = ordRefundTradeNo;
    }


    public String getOrdEntrustUserId() {
        return ordEntrustUserId;
    }

    public void setOrdEntrustUserId(String ordEntrustUserId) {
        this.ordEntrustUserId = ordEntrustUserId;
    }

    public Integer getAgent() {
        return agent;
    }

    public void setAgent(Integer agent) {
        this.agent = agent;
    }
}
